查看原文
其他

宏基因组分析实战教程1. 背景知识

2017-10-24 朱微金 宏基因组

上次我写的学习经验和推荐的教程——《微生物组入门必读+宏基因组实操课程=新老司机赶快上车》,小伙伴们当天阅读破2700+人次,3.5天破3000+,达到了宏基因组快车满三千人发车的要求。我也按约定继续分享宏基因组分析实战教程。

喜欢本教程的小伙伴,请务帮助拉到文末点个赞,鼓励我继续写作的方式,你懂的。

本系统教程以2017年9月26-30日在 UC Davis举办的宏基因组Workshop的学习笔记为主线。课程介绍详见 《宏基因组分析实操课程》

同时结合笔者的经验,对教程操作过程中可能遇到的问题进行说明并提供解决方法,并对本教程没有涉及而又很常用的分析进行专题讲解,预计共分20次课程,每周二 and/or 五更新。

1. 课程简介

原文链接:https://2017-cicese-metagenomics.readthedocs.io/en/latest/welcome.html

1. 学习目标

  • 了解相关工具

  • 获得命令行的一些经验

  • 基本完成数据分析

  • 简介科学数据分析的套路

2. 安全空间与行为准则

  • 目的是提供安全且友好的学习环境

  • 行为准则请阅读《木匠软件》

  • 鼓励提出问题,可能别人也需要

3. 主讲介绍

  • Harriet Alexander - postdoc at UC Davis.

  • Phil Brooks - postdoc at UC Davis.

  • Titus Brown - prof at UC Davis in the School of Vet Med.

4. 亚马逊云计算

  • 软件安装简单

  • 大数据分析方便

  • 爆发力强

  • 无地域限制

5. 便签规则

  • 无便签:正在进行中

  • 绿便签:一切顺利

  • 红便签:需要帮助

练习使用云计算平台

官方提供了一种平台我没有使用成功,笔者也尝试了几种都没有成功,或没有免费版。这里自己有服务器的直接使用即可,没有服务器的人推荐使用阿里云(国内速度快,朋友用过体验还不错,学生有优惠)。

Jetstream计算平台

此节按教程操作页无法登陆,可能不适合国内用户或需要授权

https://2017-cicese-metagenomics.readthedocs.io/en/latest/jetstream/boot.html

注册:访问 https://use.jetstream-cloud.org/application/images , 点login,

登陆默认为XSEDE的账号,但也支持Google和ORCiD iD,这里我用google,再点create new user, 使用单位邮箱注册,注册设置Key,返回邮件后继续注册。
我的Username为microking,密码为大写+小写+数字才合格。

以后访问 http://portal.xsede.org 登陆

访问 https://use.jetstream-cloud.org/application/images

亚马逊云

https://amazonaws-china.com/cn/
提供每月750h,1G内存,5G存储,100W免费请求

我测试时注册一直没成功,有国内的服务器应该可用的,可能是最近18+1大的原因

阿里云

https://www.aliyun.com/ 直接使用淘宝账户登陆,学生可购买9.9每月的1折优惠,1核,2G内存,1M带宽,40G存储;学习数据分析应该够用了。如果不是学习,还是建议自己买高配电脑或服务器吧,好点配置三年租金和服务器等价了。

测试数据

刘博士帮助把测试数据建立了一个百度云同步共享文件夹,有非常多的好处,请读完下文再决定是否下载:

  1. 下载被墙的数据;很多数据存在google, amazon的部分服务器国内无法直接下载,而服务器一般科学上网不方便,下载数据困难。大家下载失败的数据请到共享目录中查找;

  2. 预下载好的软件、数据库;有很多需要下载安装、注册的软件(在线安装包除外),其实已经在共享目录了,节约小伙伴申请、下载的时间;

  3. 数据同步更新;任何笔记或教程不可避免的有些错误、或不完善的地方,后期通过大家的测试反馈问题,我可以对教程进行改进。共享目录不建议全部下载或转存,因为文件体积非常大,而且还会更新。你转存的只是当前版本的一个备份,就不会再更新了。建议直接在文件夹中每次逐个下载需要的文件,也对文件有一个认识过程。

  4. 方便结果预览和跳过问题步骤;服务器Linux在不同平台和版本下,软件安装和兼容性问题还是很多的,而且用户的权限和经验也会导致某些步骤相关软件无法成功安装(有问题建议先google、再找管理员帮助;想在群里提问或联系作者务必阅读《如何优雅的提问》)。在百度云共享目录中,有每一步的运行结果,读者可以下载查看分析结果,并可基于此结果进一步分析。不要纠结于某一步无法通过,重点是了解整个流程的分析思路。

最后送上本教程使用到的所有文件同步共享文件夹链接:http://pan.baidu.com/s/1hsIjosk 密码:y0tb 。

Shell入门

需要有服务器实际操作,上面原作者提供的云无法使用,阿里云需付费,如需要读者可自行购买或在自己的linux服务器上使用。

Shell学习材料推荐

  • Shell基本命令:常用入门教程 https://github.com/swcarpentry/DEPRECATED-boot-camps/blob/master/shell/shell_cheatsheet.md

  • Shell小抄:常用命令熟背 https://fosswire.com/post/2007/08/unixlinux-command-cheat-sheet/

  • Shell宝典:百科全书,资料查阅;https://explainshell.com/


图1. 学习程序的重要性


初识Shell

# 下载课程相关文件 git clone https://github.com/edamame-course/edamame-data.git # 进入课程目录 cd edamame-data # 进入本节目录 cd shell # 查看当前目录文件 ls

显示命令参数

# 查看命令的帮助 man ls

查找文件

# 区分目录和文件 ls -F # 查看当前目录下的某文件 find -name youfoundit.txt # tab键补全命令和文件名,如下命令再按tab,是不是补全了文件名 ls S # 路径常用字符 cd . # 当前目录 cd .. # 上级目录 cd ~ # 家目录

通配符
*代表一个或多个字符,? 代表1个字符

ls /usr/bin/*.sh # 查看所有以.sh结尾的文件 ls /usr/bin/*.? # 显示扩展名只有1个字符的文件

历史命令
Ctrl+C # 终止当前命令,打开新提示符
Ctrl+R # 反向索引历史命令

history # 每条命令有数字编号 !2017 # 数字是显示的编号,可执行对应的命令

查看文件内容

cd MiSeq # 进入测试数据目录 cat C01D01F_sub.fastq # 显示文件内容到屏幕 less C01D01F_sub.fastq # 按页查看内容 head -n 1 C01D01F_sub.fastq # 查看第1行,默认前10行 tail -n 1 C01D01F_sub.fastq # 查看最后1行,默认后10行

进入less后的基本操作
“space”: 向前翻页
“b”: 后退
“g”: 跳转至开头
“G”: 跳转至结尾
“q”: 退出

检索文件

grep 22029:7208 C01D01F_sub.fastq # 查找某行 grep -A 3 22029:7208 C01D01F_sub.fastq # 查找某行,并显示接下来三行 # 此命令可用于按4行筛选fastq文件,注意连续匹配会出现 -- 分隔符,用grep -v '--'去除

重定向

grep -B 2 TTATCCGGATTTATTGGGTTTAAAGGGT *.fastq > good-data2.txt # 将检索结果保存至文件,-B 2同时输出匹配行前面两行 grep TTATCCGGATTTATTGGGTTTAAAGGGT *.fastq | less # 保存结果分页查看 grep TTATCCGGATTTATTGGGTTTAAAGGGT *.fastq | wc -l # 保存结果统计行数

文件操作

cp good-data2.txt good-data2.backup.txt # 复制文件 mkdir backup # 创建目录 mv good-data2.backup.txt backup/ # 移动文件至目录 mv backup/good-data2.backup.txt backup/good-data2.backup_IMPORTANT # 文件重命名 rm backup/good-data2.backup_IMPORTANT # 删除文件

运行程序

cd .. # 退回上一级shell目录 which ls # 查看程序位置 echo $PATH # 查看环境变量 hello.sh # 报错,找不到程序 ./hello.sh # 必须有程序的绝对,或相对位置才可以

查找文件

find . -print # 查看当前目录及以下所有文件 find . -type f -print # 只找文件 find . -type f -name "*1*" # 查找名中含1的文件 find . -type f -name "*1*" -or -name "*2*" -print # 查找名中含1或2的文件 find . -type f -name "*1*" -and -name "*2*" -print # 查找名中含1和2的文件

实战练习:运行本地blast

# 更新软件库并安装blast,已经安装的请跳过 sudo apt-get update && sudo apt-get -y install python ncbi-blast+ # 创建本实验目录并进入 mkdir blast cd blast # 下载测试数据 curl -O ftp://ftp.ncbi.nih.gov/refseq/M_musculus/mRNA_Prot/mouse.1.protein.faa.gz curl -O ftp://ftp.ncbi.nih.gov/refseq/M_musculus/mRNA_Prot/mouse.2.protein.faa.gz curl -O ftp://ftp.ncbi.nih.gov/refseq/M_musculus/mRNA_Prot/mouse.3.protein.faa.gz curl -O ftp://ftp.ncbi.nih.gov/refseq/D_rerio/mRNA_Prot/zebrafish.1.protein.faa.gz # 查看下载结果 ls -l # 解压 gunzip *.faa.gz head mouse.1.protein.faa head -11 mouse.1.protein.faa > mm-first.fa # 以1为例建数据库 makeblastdb -in zebrafish.1.protein.faa -dbtype prot # 比对某条序列至数据库,结果至屏幕 blastp -query mm-first.fa -db zebrafish.1.protein.faa # 比对某条序列至数据库,结果至文件 blastp -query mm-first.fa -db zebrafish.1.protein.faa -out mm-first.x.zebrafish.txt less mm-first.x.zebrafish.txt # 分析250条序列 head -500 mouse.1.protein.faa > mm-second.fa blastp -query mm-second.fa -db zebrafish.1.protein.faa -out mm-second.x.zebrafish.txt less mm-second.x.zebrafish.txt # 输出表格结果 -outfmt 6 blastp -query mm-second.fa -db zebrafish.1.protein.faa -out mm-second.x.zebrafish.tbl.txt -outfmt 6 # less -S不换行查看 head mm-second.x.zebrafish.tbl.txt | less -S

猜你喜欢

写在后面

为鼓励读者交流、快速解决科研困难,我们建立了"宏基因组"专业讨论群,目前己有国内五十位PI,六百多名一线科研人员加入。参与讨论,获得专业指导、问题解答,欢迎分享此文至朋友圈,并扫码加主编好友带你入群,务必备注“姓名-单位-研究方向-职称/年级”。技术问题寻求帮助,首先阅读如何优雅的提问学习解决问题思路,仍末解决推荐微信群交流,复杂问题请在生信技能树-微生物组版块(http://www.biotrainee.com/forum-88-1.html) 发贴,并转发链接入群,问题及解答方便检索,造福后人。


学习16S扩增子、宏基因组科研思路和分析技术,快关注“宏基因组”

点击阅读原文,跳转最新文章目录阅读

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存